#include <stdint.h>
#include "app.h"

void s16toa10( s16 iv, u8 *sp, u32 *sl )
{
    u8 *p=sp;
    *sl = 0;
    u16 uv;

    if ( iv < 0 ){
        *p++ = '-'; ++(*sl);
        iv = 0 - iv;
    }
    uv = iv;//fit -32768
    bool hwz = false;
//32767
    u8 wg=0;
    while( uv >= 10000 ){
        uv -= 10000;
        ++wg;
    }
    if ( wg != 0 ){
        *p++ = '0'+wg; ++(*sl);
        hwz = true;
    }
//2767
    wg=0;
    while( uv >= 1000 ){
        uv -= 1000;
        ++wg;
    }
    if ( wg != 0 ){
        *p++ = '0'+wg; ++(*sl);
        hwz = true;
    }else{
        if ( hwz ){
            *p++ = '0'; ++(*sl);
        }
    }
//767
    wg=0;
    while( uv >= 100 ){
        uv -= 100;
        ++wg;
    }
    if ( wg != 0 ){
        *p++ = '0'+wg; ++(*sl);
        hwz = true;
    }else{
        if ( hwz ){
            *p++ = '0'; ++(*sl);
        }
    }
//67
    wg=0;
    while( uv >= 10 ){
        uv -= 10;
        ++wg;
    }
    if ( wg != 0 ){
        *p++ = '0'+wg; ++(*sl);
        hwz = true;
    }else{
        if ( hwz ){
            *p++ = '0'; ++(*sl);
        }
    }
//7
    wg=0;
    while( uv >= 1 ){
        uv -= 1;
        ++wg;
    }
    *p = '0'+wg; ++(*sl);
/*  if ( wg != 0 ){
        *p++ = '0' + wg;
        //hwz = true;
    }else{
        //if ( hwz ){
            *p++ = '0';
        //}
    }
*/
}

